# Copyright (c) OpenMMLab. All rights reserved.
def multi_turn_2_map_fn(example):
    messages = example["messages"]
    system = ""
    input = ""
    conversation = []
    while messages and messages[0]["role"] == "assistant":
        # Skip the first one if it is from assistant
        messages = messages[1:]
    for msg in messages:
        if msg["role"] == "system":
            system = msg["content"]
        elif msg["role"] == "user":
            input += msg["content"]
        elif msg["role"] == "assistant":
            conversation.append(
                {"system": system, "input": input, "output": msg["content"]}
            )
            system = ""
            input = ""
        else:
            raise NotImplementedError
    return {"conversation": conversation}
